Page({
  // 用户点击右上角转发-只有定义了此事件处理函数，右上角菜单才会显示“转发”按钮
  onShareAppMessage() {
    return {
      title: '查看通行证',
      path: `/visitor_pkg/pages/passport/index?encryptedData=${this.data.detail.encryptedData}`,
      imageUrl: 'https://enjoy-plus.oss-cn-beijing.aliyuncs.com/images/share_poster.png',
    }
  },
  // 页面的初始数据
  data: {
    detail: {},
    qrTxt: '你好呀',
  },
  // 页面加载
  onLoad(query) {
    console.log(query)
    // 根据id查询访客邀请详情
    this.getDetail(query)
  },
  // 查询访客邀请详情
  async getDetail(query) {
    let res = {}
    // 已登录的用户通过 id 查询详情，返回的数据中包含 encryptedData 用于分享
    if (query.id) {
      res = await wx.http.get(`/visitor/${query.id}`)
    }
    // 未登录的用户通过 encryptedData 查询详情，免 token 验证
    else if (query.encryptedData) {
      res = await wx.http.get(`/visitor/share/${query.encryptedData}`)
    }
    this.setData({
      detail: res.data,
    })
  },
  // 保存图片
  onSaveImage() {
    // 先获取用户授权
    wx.getSetting({
      success: (res) => {
        // 如果用户没有授权保存到相册，则打开授权页面
        if (res.authSetting['scope.writePhotosAlbum'] === false) {
          // 打开授权设置页 - 引导用户开启授权
          wx.openSetting({})
        } else {
          // 用户已授权的情况下，下载图片文件
          wx.downloadFile({
            url: this.data.detail.url,
            success: (res) => {
              // 才能保存图片
              wx.saveImageToPhotosAlbum({
                // 图片文件路径，可以是临时文件路径或永久文件路径 (本地路径) ，不支持网络路径
                filePath: res.tempFilePath,
                success: () => {
                  wx.showToast({
                    icon: 'success',
                    title: '二维码保存成功',
                  })
                },
              })
            },
          })
        }
      },
    })
    // 网页端下载 a 标签的 href 属性, download
  },
})
